Many specialized terms and abbreviations are used in the communications arts. At least some of the following are referred to within the text that follows, such as in this background and/or the description sections. Thus, the following terms and abbreviations are herewith defined:                3GPP 3rd Generation Partnership Project        CRC Cyclic Redundancy Check        E-UTRAN Evolved UTRAN        LTE Long Term Evolution        UMTS Universal Mobile Telecommunications System        UTRA Universal Terrestrial Radio Access        UTRAN UMTS Terrestrial Radio Access Network        WiMAX Worldwide Interoperability for Microwave Access        
Telecommunication forms the backbone of today's information-oriented society and may be carried out using wired or wireless transmission and reception. The capacity of a communication channel is typically limited by the bandwidth. The bandwidth of a communication channel is in turn limited by natural and artificial limits imposed by, for example, the properties of the medium, the spectrum allocated for communication by design constraints, and regulatory authorities or operators.
The utilization of a communications channel, even given a finite allocation of the electromagnetic spectrum, may be increased by adopting any of a number of different schemes. These schemes enable more information to be communicated in a given spectrum allocation. Efficient utilization of spectrum can reduce the cost of communication services being provided, can enable richer communication services to be provided, or both.
An example communication scheme involves the coding of information. Information is encoded at a transmitting device, and the encoded information is transmitted via a channel. The transmitted encoded information propagates through the channel and is decoded at a receiving device to recover at least a semblance of the original information. With appropriate coding, information may be compressed and/or made more resilient to interference in the communications channel. In other words, coding schemes may be employed to increase the efficient utilization of electromagnetic spectrum.
Practical channel codes that achieve performance close to capacity are now widely in use in current wireless communication standards or planned for future ones. Examples of such codes are the turbo codes used in the UTRAN, E-UTRAN, and WiMAX systems. The optimal decoder for such codes is impractical to implement. Consequently, sub-optimal iterative decoders are used. Such decoders are known to nonetheless approach optimal performance for practical operation ranges. These decoders typically require many iterations, with the complexity of the decoder increasing proportionally with the number of iterations employed to achieve a target residual frame error rate.
In mobile wireless communication systems, for example, such decoders are implemented in mobile terminals with size, processing power, and cost constraints. When the system supports high data rates, the required decoder complexity places a burden on the limited resources of a mobile terminal. Such complexity constraints also affect the base station where the signals for many users may have to be decoded concurrently. Furthermore, such a system may use transport block segmentation in which a larger transport block is segmented into multiple smaller code sub-blocks. The sub-blocks are decoded before the transport block can be fully decoded.
It is therefore of interest to reduce the complexity of the iterative decoder while also attempting to maintain a desired level of performance. One such method for reducing complexity involves dynamically reducing the number of decoding iterations employed based on the codeword received. Numerous stopping rules for reducing the number of iterations to less than a predefined maximum have been described in the prior art.
A stopping rule for reducing the number of decoding iterations provides some criterion that, when met, can indicate with a relative and/or acceptably high degree of confidence that the code block has been decoded successfully. When the criterion outlined by the stopping rule is met, the decoding process is stopped. Typically, the number of iterations used for decoding different code blocks may directly or indirectly depend on the signal-to-noise ratio of the received signal. Indeed, it would be beneficial for the decoder to increase the amount of effort needed to make a decoding decision as the signal-to-noise ratio of the received signal decreases.
Many classes of codes in use, such as turbo codes, can map the effort to be employed directly to the number of iterations used by the decoder. Given a target frame error rate that is to be met, the use of a stopping rule can reduce the average number of iterations involved in the decoding as compared to an algorithm that simply uses a fixed number of iterations.
Thus, a stopping rule can be used to curtail the number of iterations performed by an iterative turbo decoder. These rules can be classified broadly into hard decision rules, soft decision rules, and a CRC rule. Hard decision rules are based on the lack of changes in bit decisions between iterations. Soft decision rules are based on comparing a metric, which is derived from the soft bit reliability values generated after an iteration, with a threshold.
The CRC rule relies on the absence of detected error at the end of an iteration to decide if a decoded code block is correct. If the CRC indicates a lack of a code block error, decoding is stopped. The use of the CRC as a stopping criterion has been described in the following document: ‘Stopping Rules for Turbo Decoders,’ by Matache, Dolinar and Pollara, which was published in the NASA JPL TMO Progress Report 42-142, Aug. 15, 2000, and currently available at http://tmo.jpl.nasa.gov/progress_report/42-142/title.htm.
Regardless of the stopping rule used, a practical decoder sets a limit on the maximum number of decoding iterations (e.g., Imax=8). At the end of the last permitted iteration, the stopping rule can be used to determine if the code block was decoded successfully. However, the iterative decoding is then terminated regardless of whether the stopping rule has been met.
In a modern high-data-rate communication system, for example, a transport block can contain tens or even hundreds of thousand of bits. For practical reasons, a “large” transport block is thus segmented into multiple code sub-blocks, each of which is usually smaller than a predefined maximum size. For instance, in the LTE of the UMTS system (e.g., Technical Specification 3GPP TS 36.212 “Multiplexing and Channel Coding (Release 8)” issued by the 3rd Generation Partnership Project), the maximum code sub-block size is set to 6144 bits, and a CRC sequence is calculated and attached to each sub-block.
FIGS. 1A and 1B illustrate example code block segmentation schemes. Generally, each includes a transport block 100 that is segmented into multiple sub-blocks 102. CRC sequences 104 and/or 106 are included with each sub-block 102. More specifically, FIG. 1A illustrates an example code block segmentation and CRC attachment scheme in accordance with E-UTRAN. FIG. 1B illustrates an example code block segmentation and CRC attachment scheme in accordance with WiMAX/UTRA.
In FIG. 1A, transport block 100A includes “n” sub-blocks 102A (e.g., sub-block 102A(1), sub-block 102A(2) . . . sub-block 102A(n)), with “n” representing a positive integer. Each sub-block 102A includes and is associated with a CRC 104. CRCs 104 are termed inner CRCs. CRC 106 is termed an outer CRC. Outer CRC 106 may be included as part of one (or two or a few) sub-block 102A, but it is associated with multiple sub-blocks 102A, such as each of the sub-blocks 102A of transport block 100A. Thus, with the LTE of UTRA, each of sub-blocks 102A is protected by an inner CRC 104, and the overall transport block 100A is also protected by another check sequence, the outer CRC 106.
In FIG. 1B, transport block 100B includes “n” sub-blocks 102B (e.g., sub-block 102B(1), sub-block 102B(2) . . . sub-block 102B(n)), with “n” representing a positive integer. Transport block 100B includes and is associated with a CRC, such as outer CRC 106. Outer CRC 106 may be included as part of one of the sub-blocks, such as the last sub-block 102B(n). However, outer CRC 106 is associated with multiple sub-blocks 102B, such as each of the sub-blocks 102B of transport block 100B. Sub-block 102B(n) may also include padding bits. It should be noted that an outer CRC 106 may also be split between two or more sub-blocks 102.
Turbo coding is used in many wireless communication systems due to its performance capabilities. Typically, the total data block is split into many sub-blocks, each of which is coded separately using the turbo encoder. This splitting and separate coding is intended to trade-off memory and performance specifications of the turbo decoder. The turbo decoder operates in an iterative fashion—each iteration uses the results of the previous iteration as input and typically improves the reliability of the decoded sequence of bits.
Generally, a transport block containing multiple sub-blocks is decoded by decoding the component sub-blocks in the sequential order in which they form the transport block. If a sub-block is found to be correct, turbo decoding for that sub-block may be stopped, and the decoder may proceed to process the next sub-block. On the other hand, if a sub-block is found to be incorrect, decoding of the rest of the transport block can be aborted. The effect of either type of decoding termination can contribute to a reduction in the total amount of decoding resources employed.
Early stopping rules may be implemented to determine when decoding may be terminated prior to a maximum permitted number of iterations. There are two types of error events associated with early stopping rules: In a “miss event”, an erroneous sub-block is declared as correct. In such an event, the receiver continues to decode the rest of the sub-blocks in the transport block, which results in an unnecessary increase in complexity. In a “false alarm event”, a correctly-decoded sub-block is declared as being in error. This type of event is also troublesome. When one of the sub-blocks is declared incorrect, it is sensible to abort the decoding of the remainder of the sub-blocks. However, if such detection is unreliable, data throughput can be unnecessarily reduced, and the applied decoding resources are concomitantly increased.
When data throughput is reduced, the amount of data being communicated per user is reduced and/or the number of users that may be served at a given service level is reduced. When decoding resources are increased, especially with a mobile device, the level of complexity and amount of battery drain also increase. Existing stopping rules do not efficiently address these issues inasmuch as they are relatively complex.
Consequently, there is a need to address these deficiencies in the current state of the art. Such deficiencies and other needs are addressed by one or more of the various embodiments of the present invention.